using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;

namespace QuizArena
{
    public class FormUtils
    {
        private const float larguraDaBorda = 3;
        private const float alturaDaBorda = 30;
        public enum TamanhoForm : int
        {
            Pequeno = 1,
            Medio = 2,
            Grande = 3,
            FullScreen = 4
            
        }

        public static Vector2 obterTamanhoFormFullScreen() 
        {
            float larguraDaResolucao = 800;
            float alturaDaResolucao = 600;

            float larguraDoForm = larguraDaResolucao + 2 * larguraDaBorda;
            float alturaDoForm = alturaDaResolucao + 2 * alturaDaBorda;

            return new Vector2(larguraDoForm, alturaDoForm);
        }
        

        public static Vector2 obterTamanhoForm(TamanhoForm TamanhoDoFormulario) 
        {
            switch (TamanhoDoFormulario)
            {
                case FormUtils.TamanhoForm.FullScreen:
                    return obterTamanhoFormFullScreen();
                case FormUtils.TamanhoForm.Grande:
                    return new Vector2(obterTamanhoFormFullScreen().X / 2, obterTamanhoFormFullScreen().Y / 2);
                case FormUtils.TamanhoForm.Medio:
                    return new Vector2(obterTamanhoFormFullScreen().X / 3, obterTamanhoFormFullScreen().Y / 3);
                case FormUtils.TamanhoForm.Pequeno:
                    return new Vector2(obterTamanhoFormFullScreen().X / 4, obterTamanhoFormFullScreen().Y / 4);
                default:
                    return obterTamanhoFormFullScreen();
            }
        }



        public static Vector2 obterPosicaoFormFullScreen()
        {
            return new Vector2(-larguraDaBorda, -alturaDaBorda);
        }

        public static Vector2 obterPosicaoForm(TamanhoForm PosicaoDoFormulario)
        {
            switch (PosicaoDoFormulario)
            {
                case FormUtils.TamanhoForm.FullScreen:
                    return obterPosicaoFormFullScreen();
                case FormUtils.TamanhoForm.Grande:
                    return new Vector2(obterPosicaoFormFullScreen().X / 2, obterPosicaoFormFullScreen().Y / 2);
                case FormUtils.TamanhoForm.Medio:
                    return new Vector2(obterPosicaoFormFullScreen().X / 3, obterPosicaoFormFullScreen().Y / 3);
                case FormUtils.TamanhoForm.Pequeno:
                    return new Vector2(obterPosicaoFormFullScreen().X / 4, obterPosicaoFormFullScreen().Y / 4);
                default:
                    return obterPosicaoFormFullScreen();
            }
        }

    }
}
